package com.wn.controller;

import com.wn.bean.R;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author yellow Docter
 * @date 2022 -07-13
 * @desc
 *  项目的异常的通知处理类
 */
@RestControllerAdvice
public class ProjectExceptionAdvice {

    //不同的方法 处理不同的异常

    /**
     * 这个是处理空指针的异常
     * @return
     * 注解: @ExceptionHandler 把异常和 handlerNullPointerException方法进行绑定
     */
    @ExceptionHandler(NullPointerException.class)
    public R handlerNullPointerException(){

        R r = new R();
        r.setMsg("亲,网络繁忙,请稍后再试...");
        r.setCode(403);

        //发送短信 给 工程师加班

        // 把异常信息捕获 存储到数据库

        // 给公司的项目负责人发邮件

        return r;
    }

    /**
     * 算术异常
     * @return
     */
    @ExceptionHandler(ArithmeticException.class)
    public R handlerArithmeticException(){

        R r = new R();
        r.setMsg("亲,活动中,客服正在安排处理...");
        r.setCode(403);

        return r;

    }
}
